package model.response

import org.simpleframework.xml.{Element, Root}

import scala.beans.BeanProperty

@Root(name = "xml", strict = false)
class WXOrderQueryResponse {
  
  @Element(name = "return_code")
  @BeanProperty var returnCode:String = _

  @Element(name = "return_msg", required = false)
  @BeanProperty var returnMsg:String = _

  /** 以下字段在return_code为SUCCESS的时候有返回. */
  @Element(name = "appid", required = false)
  @BeanProperty var appid:String = _

  @Element(name = "mch_id", required = false)
  @BeanProperty var mchId:String = _

  @Element(name = "device_info", required = false)
  @BeanProperty var deviceInfo:String = _

  @Element(name = "nonce_str", required = false)
  @BeanProperty var nonceStr:String = _

  @Element(name = "sign", required = false)
  @BeanProperty var sign:String = _

  @Element(name = "sign_type", required = false)
  @BeanProperty var signType:String = _

  @Element(name = "result_code", required = false)
  @BeanProperty var resultCode:String = _

  @Element(name = "err_code", required = false)
  @BeanProperty var errCode:String = _

  @Element(name = "err_code_des", required = false)
  @BeanProperty var errCodeDes:String = _

  @Element(name = "openid", required = false)
  @BeanProperty var openid:String = _

  @Element(name = "is_subscribe", required = false)
  @BeanProperty var isSubscribe:String = _

  @Element(name = "trade_type", required = false)
  @BeanProperty var tradeType:String = _

  @Element(name = "trade_state", required = false)
  @BeanProperty var tradeState:String = _

  @Element(name = "bank_type", required = false)
  @BeanProperty var bankType:String = _

  @Element(name = "settlement_total_fee", required = false)
  @BeanProperty var settlementTotalFee:String = _

  @Element(name = "total_fee", required = false)
  @BeanProperty var totalFee:String = _

  @Element(name = "fee_type", required = false)
  @BeanProperty var feeType:String = _

  @Element(name = "cash_fee", required = false)
  @BeanProperty var cashFee:String = _

  @Element(name = "cash_fee_type", required = false)
  @BeanProperty var cashFeeType:String = _

  @Element(name = "coupon_fee", required = false)
  @BeanProperty var couponFee:String = _

  @Element(name = "coupon_count", required = false)
  @BeanProperty var couponCount:String = _

  @Element(name = "coupon_id_0", required = false)
  @BeanProperty var couponId0:String = _

  @Element(name = "coupon_fee_0", required = false)
  @BeanProperty var couponFee0:String = _

  @Element(name = "coupon_type_0", required = false)
  @BeanProperty var couponType0:String = _

  @Element(name = "transaction_id", required = false)
  @BeanProperty var transactionId:String = _

  @Element(name = "out_trade_no", required = false)
  @BeanProperty var outTradeNo:String = _

  @Element(name = "attach", required = false)
  @BeanProperty var attach:String = _

  @Element(name = "time_end", required = false)
  @BeanProperty var timeEnd:String = _

  @Element(name = "trade_state_desc", required = false)
  @BeanProperty var TradeStateDesc:String = _
}
